草庐IT

PHP readdir 和排序

全部标签

c++ - 我有一个 STL vector 列表,我想按每个 vector 的第一个元素对它们进行排序

我有一个来自STL的vector列表。它们有不同的长度,我想按每个vector的第一个元素对它们进行排序。例如,我有vector:445610、18、223和3179.第一个数字是每个vector的大小,后面是vector的元素。我想在文件中显示vector,按第一个元素排序。在此示例中,我的vector应按以下顺序显示:3179,223,445610and18.这是我的代码:ofstreamfout("retele.out");fout“T”是vector的数量。“排序”函数用于对每个vector进行排序,我还需要另一种排序方法来对vector进行排序,正如我刚才所描述的那样。

c++ - 插入排序还是选择排序的变体?

我有一个代码片段here.测试了几个案例,似乎工作正常。学习了算法后,我一下子写出了插入排序的代码,但是有疑问,这真的是传统的插入排序吗?我觉得这可能是选择排序的变体(调整版),这是我困惑的原因。具体来说,这是值得关注的领域:(给定n元素的数组a)for(i=1;i此外,这种方法的比较或交换次数是多了还是少了?在此先感谢您的帮助。 最佳答案 你的问题最直接的答案是是,就是插入排序。这是一种非常低效的插入排序,但它仍然是插入排序。您的代码缺少决定性的步骤,即一旦确定元素的位置,就可以停止比较,然后对已排序的序列进行移位操作,从而为新元

c++ - 按 C++ 中的公共(public)/重复元素对 vector 进行分组和排序

假设我有一个vector如下std::vectorv={3,9,7,7,2};我想对这个元素vector进行排序,这样vector将存储为77932。所以首先,我们存储公共(public)元素(7),然后我们将剩余的元素从最高到最低排序。如果我有一个vector如下std::vectorv={3,7,7,7,2};在这里,它将导致77732。同样std::vectorv={7,9,2,7,9};它应该导致99772,因为9比7高。最后一个例子std::vectorv={7,9,7,7,9};它应该导致77799,因为7比9多。最快的算法是什么? 最佳答案

c++ - 排序指针列表的问题

我正在尝试对指针列表进行排序(在我的例子中,每个指针都是Job类型)我的意图是按序列号对作业进行排序voidContainer::jobSort(list&jobs){sort(jobs.begin(),jobs.end(),jobSerialCompare);}boolContainer::jobSerialCompare(constJob*jobA,constJob*jobB){return(jobA->getSn()getSn());}我得到的错误是:error:nomatchingfunctionforcallto'sort(std::_List_iterator,std::_

c++ - 给定字符串 vector (按长度排序),用于查找等长字符串范围的惯用 C++

给定一个std::vector,vector按字符串长度排序,如何找到等长强度的范围?我期待C++中的惯用解决方案。我找到了这个解决方案://anyideaforabettername?(Englishisnotmymothertongue)boolless_length(conststd::string&lhs,conststd::string&rhs){returnlhs.length()words;words.push_back("ape");words.push_back("cat");words.push_back("dog");words.push_back("camel"

c++ - std::call_once 和内存重新排序

给定来自here的代码:classlazy_init{mutablestd::once_flagflag;mutablestd::unique_ptrdata;voiddo_init()const{data.reset(newexpensive_data);}public:expensive_dataconst&get_data()const{std::call_once(flag,&lazy_init::do_init,this);return*data;}};我在其他地方也看到了相同模式的一些变体。所以我的问题是:为什么这段代码被认为是保存的?以及为什么编译器不能在调用std::c

c++ - 对变量的标准结构数组进行排序

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:c++sortwithstructs我想弄清楚如何根据数组中包含的结构中的特定变量对结构数组进行排序。这是我的代码:structProcess{intpid;intburst;intarrival;};intmain(intargc,char*argv[]){//ThenumberofprocessesintnumProcesses=3;//Createanarraythatholds10ProcessstructsProcess*arrayOfProcesses=newProcess[numProcesse

C++ 排序不适用于比较函数

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭10年前。我正在尝试使用sortC++函数对存储在vector中的结构进行排序。我以前做过这个没有任何问题。但是我没有获得所需的输出。如果我单独尝试比较函数它会起作用,但是一旦我使用排序C++函数,比较函数似乎就不起作用了。这个想法是对int数组进行排序,就好像它们是按升序排列的二进制数一样。我知道有不同的方法可以做到这一点,但我不明白为什么这不起作用。预期的输出

c++ - 二分查找,排序数组

我正在学习二分查找,基本定义是从指向第一个元素的迭代器和指向最后一个元素的迭代器开始的。您还有一把key,它就是您要查找的元素。首先将键与中点的值进行比较,然后根据键是大于还是小于中点的值来消除上半部分或下半部分。这个过程一直持续到匹配为止。此方法是否需要对您正在查看的容器进行排序?否则,我看不出容器中的键和值之间的比较有何特殊用途,以消除要查看的容器部分。 最佳答案 是的,确实如此。Incomputerscience,abinarysearchorhalf-intervalsearchalgorithmfindsthepositi

c++ - 根据特定字段对结构 vector 进行排序

目前我正在尝试根据特定字段对结构vector进行排序。我已经为排序功能的使用设置了自定义比较功能。但是,我遇到了一些错误。代码:structPlay{intmin,down,yard,locat;stringDescription,offname,defname;doublerelevance;};boolcustomCompare(constPlay&x,constPlay&y){return(x.relevance错误:errorC3867:'List::customCompare':functioncallmissingargumentlist;use'&List::custom